Haftanın belirli gününe nasıl alarm koyabilirim.
02.09.2016 - 08:19
Merhaba arkadaşlar benim geliştirdiğim bir uygulama da ders programı oluşturuluyor. Ders zamanı gelince bildirim vermek istiyorum.
Yani pazartesi saat 8 de ders varsa. Her Hafta saat 8 de ders zamanı geldi. diye bildirim oluşturmak istiyorum. Bunu alarmmaneger ve notificition ile yapıyorum. Tek seferlik alarm verebiliyorum. Ama tekrarlı bir türlü veremedim. Kodlar şöyle. Recevier kısmı çalıştığı için onu vermiyecem.
private void alarmla() {
SQLiteDatabase db=activity.openOrCreateDatabase("SINIFD",activity.MODE_PRIVATE,null);
Cursor c = db.rawQuery("select * from ders", null);
if(c.getCount()>0){
c.moveToFirst();
do {
AlarmManager alarmManager = (AlarmManager) activity.getSystemService(Context.ALARM_SERVICE);
Toast.makeText(activity, c.getString(3).split(":")[0] + " " + c.getString(3).split(":")[1], Toast.LENGTH_LONG).show();
Intent notificationIntent = new Intent("android.media.action.DISPLAY_NOTIFICATION");
notificationIntent.addCategory("android.intent.category.DEFAULT");
notificationIntent.putExtra("message", c.getString(1) + " dersi zamanı geldi. Kazanımlara ulaşmak için tıklayınız. İyi dersler.");
notificationIntent.putExtra("gizli", c.getString(6));
PendingIntent broadcast = PendingIntent.getBroadcast(activity, c.getInt(0), notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar timeOff = Calendar.getInstance();
int days = guncek(c.getString(5),timeOff) + (7 - timeOff.get(Calendar.DAY_OF_WEEK)); // how many days until Sunday
timeOff.add(Calendar.DATE, days);
timeOff.set(Calendar.HOUR, Integer.parseInt(c.getString(3).split(":")[0])); //buraya 22 geliyor databaseden
timeOff.set(Calendar.MINUTE,Integer.parseInt(c.getString(3).split(":")[1])); //buraya 10 geliyor mesala
timeOff.set(Calendar.SECOND, 0);
timeOff.set(Calendar.MILLISECOND, 0);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, timeOff.getTimeInMillis(),AlarmManager.INTERVAL_DAY * 7, broadcast);
} while (c.moveToNext());
c.close();
}
db.close();
Toast.makeText(activity,"Vay be ayar ",Toast.LENGTH_LONG).show();
}
private int guncek(String i,Calendar ib){
//benim database de kayıdım pazartesi 0 salı 1..... diye gidiyor.
switch(Integer.parseInt(i)+1){
case 1:
return ib.MONDAY;
case 2:
return ib.TUESDAY;
case 3:
return ib.WEDNESDAY;
case 4:
return ib.THURSDAY;
case 5:
return ib.FRIDAY;
case 6:
return ib.SATURDAY;
case 7:
return ib.SUNDAY;
default:
return 1;
}
}
Database kısmında sorun yok zaman ayarlama da var.
7
Görüntülenme
0 Beğeni